package JavaCore;

public class ThisTest {
	//생성자 오버로딩, 다형화 되었다.  
	public ThisTest(){
		this(99); // 가장 첫줄에 기술되어야 한다. 생성자 안에서.
		System.out.println("ThisTest()");
	}
	public ThisTest(String a){
		System.out.println("ThisTest(String) : " + a);
	}
	public ThisTest(int a){
		this(""+a);
		System.out.println("ThisTest(Int) : " + a);
	}
	
	public static void main(String[] args) {
		ThisTest tt = new ThisTest();
		
		/*
		1번 JFrame f = new MyFrame(); // 고수가 되면 이렇게 쓰고싶어진다. MyFrame 은 JFrame 을 상속받음
		위 처럼 기술하면 유연성이 생긴다.
		2번 MyFrame f = new MyFrame();
		3번 JFrame f = new YourFrame();
		4번 YourFrame f = new YourFrame();
		
		
		1번과 3번은 MyFrame 과 YourFrame을 사용하여 생성자를 만들었지만 그 타입이 JFrame 타입이다.
		
		
		method1(f); --> public void method1(JFrame f){} --> MyFrame 과 YourFrame 을 쓰려면 메소드를 다형화(오버로딩) 하거나 여러번 기술해야한다.
		But, 1,3번으로 기술하면 바로 쓸수가 있고 여러번 쓸 필요 없이 한번에 쓰면 되므로 유연성이 올라간다.			
		 */

	}

}
